package com.centnet.base.bigdata.solr;

import org.apache.commons.lang3.StringUtils;
import org.apache.solr.client.solrj.beans.Field;

import java.io.Serializable;
import java.util.Date;
import java.util.regex.Pattern;

/**
 * Created by yexiaolong on 2016/9/19.
 */
public class VosPhoneRecord implements Serializable {


    /**
     * hbase数据的模板
     */
    public static final String HBASE_DATA_TMP = "id" +
            "|" + "callere164" +
            "|" + "callerAccess164" +
            "|" + "calleee164" +
            "|" + "calleeAccess164" +
            "|" + "callerIp" +
            "|" + "callerGateWayh323Id" +
            "|" + "callerProductDBId" +
            "|" + "callerToGatewaye164" +
            "|" + "calleeIp" +
            "|" + "calleeGatewayh323Id" +
            "|" + "calleeProductDBId" +
            "|" + "calleeToGatewaye164" +
            "|" + "billingModel" +
            "|" + "callLevel" +
            "|" + "agentFeeTime" +
            "|" + "startTime" +
            "|" + "stopTime" +
            "|" + "pdd" +
            "|" + "holdTime" +
            "|" + "feePrefix" +
            "|" + "feeTime" +
            "|" + "fee" +
            "|" + "suiteFee" +
            "|" + "suiteFeeTime" +
            "|" + "inComeFee" +
            "|" + "customerAccount" +
            "|" + "customerName" +
            "|" + "agentFeePrefix" +
            "|" + "agentFee" +
            "|" + "agentSuiteFee" +
            "|" + "agentSuiteFeeTime" +
            "|" + "agentAccount" +
            "|" + "agentName" +
            "|" + "flowNo" +
            "|" + "softSwitchDn" +
            "|" + "endDirection" +
            "|" + "endReason" +
            "|" + "calleeBilling" +
            "|" + "cdrLevel" +
            "|" + "subcdrId" +
            "|" + "serverIp" +
            "|" + "calleeCityId" +
            "|" + "calleeProvinceId" +
            "|" + "fbFraudType" +
            "|" + "fraudType";
    /**
     * rowKey字段的名称
     */
    public static final String ROW_KEY_FIELD = "rowKey";

    private static String[] fieldNames = HBASE_DATA_TMP.split(Pattern.quote("|"));

    @Field
    private Long createTime;

    private Date createTime4Excel;
    /**
     * hbase的rowkey
     */
    @Field
    private String rowKey;
    /**
     * id
     */
    @Field
    private Long id;

    /**
     * 计费主叫号码
     */
    @Field
    private String callere164;

    /**
     * 呼入主叫号码
     */
    @Field
    private String callerAccess164;

    /**
     * 计费被叫号码
     */
    @Field
    private String calleee164;

    /**
     * 呼入被叫号码
     */
    @Field
    private String calleeAccess164;

    /**
     * 主叫IP
     */
    @Field
    private Long callerIp;

    /**
     * 主叫IP的excel列
     */
    private String callerIp4Excel;

    /**
     * 主叫经度
     */
    private String callerLongitude;

    /**
     * 主叫纬度
     */
    private String callerLatitude;

    /**
     * 主叫经由网关
     */
    @Field
    private String callerGateWayh323Id;

    /**
     * 主叫设备名称
     */
    private String callerProductId;

    /**
     * 主叫设备数据库id
     */
    @Field
    private Long callerProductDBId;

    /**
     * 呼出主叫
     */
    @Field
    private String callerToGatewaye164;

    /**
     * 被叫IP
     */
    @Field
    private Long calleeIp;

    /**
     * 被叫IP的excel列
     */
    private String calleeIp4Excel;

    /**
     * 被叫经由网关
     */
    @Field
    private String calleeGatewayh323Id;

    /**
     * 被叫设备名称
     */
    private String calleeProductId;

    /**
     * 被叫设备数据库id
     */
    @Field
    private Long calleeProductDBId;

    /**
     * 呼出被叫
     */
    @Field
    private String calleeToGatewaye164;

    /**
     * 计费模式(-1-免计费,0-电话号码,1-网关名称, 3-电话卡)
     */
    @Field
    private String billingModel;

    /**
     * 通话级别 1：网内通话 2：本地市话 4：国内长途
     */
    @Field
    private Integer callLevel;

    /**
     * 代理计费时间
     */
    @Field
    private Long agentFeeTime;

    /**
     * 起始时间,格式为 2013-10-31 11:20:18
     */
    @Field
    private Long startTime;

    /**
     * 起始时间,格式为 2013-10-31 11:20:18
     */
    private Date startTime4Excel;

    /**
     * 终止时间,格式为 2013-10-31 16:34:09
     */
    @Field
    private Long stopTime;

    /**
     * 终止时间,格式为 2013-10-31 11:20:18
     */
    private Date stopTime4Excel;

    /**
     * 延迟，callerpdd主叫连续时长，calleepdd被叫接通延迟
     */
    @Field
    private Long pdd;

    /**
     * 通话时长(单位秒)
     */
    @Field
    private Integer holdTime;

    /**
     * 计费地区前缀
     */
    @Field
    private String feePrefix;

    /**
     * 通话计费时长（秒）
     */
    @Field
    private Long feeTime;

    /**
     * 账户扣费金额
     */
    @Field
    private Double fee;

    /**
     * 套餐费用
     */
    @Field
    private Double suiteFee;

    /**
     * 套餐赠送时长（秒）
     */
    @Field
    private Long suiteFeeTime;

    /**
     * 收入？
     */
    @Field
    private Double inComeFee;

    /**
     * 客户账号
     */
    private String customerAccount;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 代理计费前缀
     */
    @Field
    private String agentFeePrefix;

    /**
     * 代理商扣费金额
     */
    @Field
    private Double agentFee;

    /**
     * 代理商套餐费用
     */
    @Field
    private Double agentSuiteFee;

    /**
     * 代理商赠送时长（秒）
     * （由于solr索引建立失误，将该字段建里成了Long）
     */
    @Field
    private Long agentSuiteFeeTime;

    /**
     * 代理帐号
     */
    @Field
    private String agentAccount;

    /**
     * 代理名称
     */
    @Field
    private String agentName;

    /**
     * 话单唯一标识
     */
    @Field
    private Long flowNo;

    /**
     * 软交换平台
     */
    @Field
    private String softSwitchDn;

    /**
     * 挂断方(0-主叫,1-被叫,2-服务器)
     */
    @Field
    private Integer endDirection;

    /**
     * 终止原因
     */
    @Field
    private Integer endReason;

    /**
     * 计费方式(0-主叫,1-被叫)
     */
    @Field
    private String calleeBilling;

    /**
     * 话单等级
     */
    @Field
    private Integer cdrLevel;

    /**
     * 子话单id
     */
    @Field
    private Long subcdrId;


    /**
     * 服务器IP
     */
    @Field
    private Long serverIp;

    /**
     * 服务器IP的excel列
     */
    private String serverIp4Excel;


    /**
     * 主叫IP所在地点
     */
    private String callerIpLocation;
    /**
     * 被叫IP所在地
     */
    private String calleeIpLocation;
    /**
     * 服务器IP所在地
     */
    private String serverIpLocation;


    /**
     * 主叫IP查询国家
     */
    @Field
    private String callerIpLocalCountry;

    /**
     * 主叫IP查询省份
     */
    @Field
    private String callerIpLocalProvince;

    /**
     * 主叫IP查询城市
     */
    @Field
    private String callerIpLocalCity;

    /**
     * 被叫IP查询国家
     */
    @Field
    private String calleeIpLocalCountry;

    /**
     * 被叫IP查询省份
     */
    @Field
    private String calleeIpLocalProvince;

    /**
     * 被叫IP查询城市
     */
    @Field
    private String calleeIpLocalCity;

    /**
     * 服务器IP查询国家
     */
    @Field
    private String serverIpLocalCountry;

    /**
     * 服务器IP归属地
     */
    private String serverIPLocal4Excel;

    /**
     * 主叫IP归属地
     */
    private String callerIPLocal4Excel;

    /**
     * 被叫IP归属地
     */
    private String calleeIPLocal4Excel;
    /**
     * 被叫归属地城市
     */
    private String calleeLocalCity4Excel;
    /**
     * 被叫号码归属地省份
     */
    private String calleeLocalProvince4Excel;

    /**
     * 主叫号码归属地省份
     */
    private String callerLocalProvince4Excel;

    /**
     * 主叫归属地城市
     */
    private String callerLocalCity4Excel;

    /**
     * 服务器IP查询省份
     */
    @Field
    private String serverIpLocalProvince;

    /**
     * 服务器IP查询城市
     */
    @Field
    private String serverIpLocalCity;

    /**
     * 用户反馈的诈骗类型
     */
    @Field
    private String fbFraudType;

    /**
     * 被叫所在城市id
     */
    @Field
    private Long calleeCityId;

    /**
     * 被叫所在省份id
     */
    @Field
    private Long calleeProvinceId;
    /**
     * 被叫所在城市名称
     */
    private String calleeCityName;
    /**
     * 被叫所在省份名称
     */
    private String calleeProvinceName;
    /**
     * 被叫所在归属地
     */
    private String calleeLocaltion;
    /**
     * 主叫所在城市id
     */
    @Field
    private Long callerCityId;

    /**
     * 主叫所在省份id
     */
    @Field
    private Long callerProvinceId;

    /**
     * 计费主叫城市id
     */
    @Field
    private Long callere164CityId;

    /**
     * 计费主叫省id
     */
    @Field
    private Long callere164ProvinceId;

    /**
     * 主叫所在城市名称
     */
    private String callerCityName;

    /**
     * 主叫所在省份名称
     */
    private String callerProvinceName;

    /**
     * 主叫所在归属地
     */
    private String callerLocaltion;

    /**
     * 计费主叫所在归属地
     */
    private String callere164Localtion;

    /**
     * 诈骗类型枚举的code，使用的枚举是：com.centnet.fpi.common.model.FraudType
     */
    @Field
    private Integer fraudType;

    /**
     * 诈骗类型值
     */
    private String fraudTypeValue;

    /**
     * 标记该记录为诈骗的时间
     */
    @Field
    private Long markFraudTime;

    /**
     * 更新时间
     */
    @Field
    private Long updateTime;
    /**
     * 通话链路Id
     */
    @Field
    private Long callLinkId;

    private String callerIps;


    public String getCalleeLocalProvince4Excel() {
        return calleeLocalProvince4Excel;
    }

    public void setCalleeLocalProvince4Excel(String calleeLocalProvince4Excel) {
        this.calleeLocalProvince4Excel = calleeLocalProvince4Excel;
    }

    public String getCallerLocalProvince4Excel() {
        return callerLocalProvince4Excel;
    }

    public void setCallerLocalProvince4Excel(String callerLocalProvince4Excel) {
        this.callerLocalProvince4Excel = callerLocalProvince4Excel;
    }

    public String getServerIPLocal4Excel() {
        return serverIPLocal4Excel;
    }

    public void setServerIPLocal4Excel(String serverIPLocal4Excel) {
        this.serverIPLocal4Excel = serverIPLocal4Excel;
    }

    public String getCallerIPLocal4Excel() {
        return callerIPLocal4Excel;
    }

    public void setCallerIPLocal4Excel(String callerIPLocal4Excel) {
        this.callerIPLocal4Excel = callerIPLocal4Excel;
    }

    public String getCalleeIPLocal4Excel() {
        return calleeIPLocal4Excel;
    }

    public void setCalleeIPLocal4Excel(String calleeIPLocal4Excel) {
        this.calleeIPLocal4Excel = calleeIPLocal4Excel;
    }

    public String getCalleeLocalCity4Excel() {
        return calleeLocalCity4Excel;
    }

    public void setCalleeLocalCity4Excel(String calleeLocalCity4Excel) {
        this.calleeLocalCity4Excel = calleeLocalCity4Excel;
    }

    public String getCallerLocalCity4Excel() {
        return callerLocalCity4Excel;
    }

    public void setCallerLocalCity4Excel(String callerLocalCity4Excel) {
        this.callerLocalCity4Excel = callerLocalCity4Excel;
    }

    public Date getCreateTime4Excel() {
        return createTime4Excel;
    }

    public void setCreateTime4Excel(Date createTime4Excel) {
        this.createTime4Excel = createTime4Excel;
    }

    public String getCallerIp4Excel() {
        return callerIp4Excel;
    }

    public void setCallerIp4Excel(String callerIp4Excel) {
        this.callerIp4Excel = callerIp4Excel;
    }

    public String getCalleeIp4Excel() {
        return calleeIp4Excel;
    }

    public void setCalleeIp4Excel(String calleeIp4Excel) {
        this.calleeIp4Excel = calleeIp4Excel;
    }

    public Date getStartTime4Excel() {
        return startTime4Excel;
    }

    public void setStartTime4Excel(Date startTime4Excel) {
        this.startTime4Excel = startTime4Excel;
    }

    public Date getStopTime4Excel() {
        return stopTime4Excel;
    }

    public void setStopTime4Excel(Date stopTime4Excel) {
        this.stopTime4Excel = stopTime4Excel;
    }

    public String getServerIp4Excel() {
        return serverIp4Excel;
    }

    public void setServerIp4Excel(String serverIp4Excel) {
        this.serverIp4Excel = serverIp4Excel;
    }

    public Long getCallLinkId() {
        return callLinkId;
    }

    public void setCallLinkId(Long callLinkId) {
        this.callLinkId = callLinkId;
    }

    public String getCallerIps() {
        return callerIps;
    }

    public void setCallerIps(String callerIps) {
        this.callerIps = callerIps;
    }

    public Long getCallere164CityId() {
        return callere164CityId;
    }

    public void setCallere164CityId(Long callere164CityId) {
        this.callere164CityId = callere164CityId;
    }

    public Long getCallere164ProvinceId() {
        return callere164ProvinceId;
    }

    public void setCallere164ProvinceId(Long callere164ProvinceId) {
        this.callere164ProvinceId = callere164ProvinceId;
    }

    public Long getMarkFraudTime() {
        return markFraudTime;
    }

    public void setMarkFraudTime(Long markFraudTime) {
        this.markFraudTime = markFraudTime;
    }

    public Long getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Long updateTime) {
        this.updateTime = updateTime;
    }

    public String getCalleeCityName() {
        return calleeCityName;
    }

    public void setCalleeCityName(String calleeCityName) {
        this.calleeCityName = calleeCityName;
    }

    public String getCalleeProvinceName() {
        return calleeProvinceName;
    }

    public void setCalleeProvinceName(String calleeProvinceName) {
        this.calleeProvinceName = calleeProvinceName;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public String getRowKey() {
        return rowKey;
    }

    public void setRowKey(String rowKey) {
        this.rowKey = rowKey;
    }

    public String getFbFraudType() {
        return fbFraudType;
    }

    public void setFbFraudType(String fbFraudType) {
        this.fbFraudType = fbFraudType;
    }

    public Integer getFraudType() {
        return fraudType;
    }

    public void setFraudType(Integer fraudType) {
        this.fraudType = fraudType;
    }

    public String getServerIpLocation() {
        return serverIpLocation;
    }

    public void setServerIpLocation(String serverIpLocation) {
        this.serverIpLocation = serverIpLocation;
    }

    public String getCallerIpLocation() {
        return callerIpLocation;
    }

    public void setCallerIpLocation(String callerIpLocation) {
        this.callerIpLocation = callerIpLocation;
    }

    public String getCalleeIpLocation() {
        return calleeIpLocation;
    }

    public void setCalleeIpLocation(String calleeIpLocation) {
        this.calleeIpLocation = calleeIpLocation;
    }


    public String getCallerIpLocalCountry() {
        return callerIpLocalCountry;
    }

    public void setCallerIpLocalCountry(String callerIpLocalCountry) {
        this.callerIpLocalCountry = callerIpLocalCountry;
    }

    public String getCallerIpLocalProvince() {
        return callerIpLocalProvince;
    }

    public void setCallerIpLocalProvince(String callerIpLocalProvince) {
        this.callerIpLocalProvince = callerIpLocalProvince;
    }

    public String getCallerIpLocalCity() {
        return callerIpLocalCity;
    }

    public void setCallerIpLocalCity(String callerIpLocalCity) {
        this.callerIpLocalCity = callerIpLocalCity;
    }

    public String getCalleeIpLocalCountry() {
        return calleeIpLocalCountry;
    }

    public void setCalleeIpLocalCountry(String calleeIpLocalCountry) {
        this.calleeIpLocalCountry = calleeIpLocalCountry;
    }

    public String getCalleeIpLocalProvince() {
        return calleeIpLocalProvince;
    }

    public void setCalleeIpLocalProvince(String calleeIpLocalProvince) {
        this.calleeIpLocalProvince = calleeIpLocalProvince;
    }

    public String getCalleeIpLocalCity() {
        return calleeIpLocalCity;
    }

    public void setCalleeIpLocalCity(String calleeIpLocalCity) {
        this.calleeIpLocalCity = calleeIpLocalCity;
    }

    public String getServerIpLocalCountry() {
        return serverIpLocalCountry;
    }

    public void setServerIpLocalCountry(String serverIpLocalCountry) {
        this.serverIpLocalCountry = serverIpLocalCountry;
    }

    public String getServerIpLocalProvince() {
        return serverIpLocalProvince;
    }

    public void setServerIpLocalProvince(String serverIpLocalProvince) {
        this.serverIpLocalProvince = serverIpLocalProvince;
    }

    public String getServerIpLocalCity() {
        return serverIpLocalCity;
    }

    public void setServerIpLocalCity(String serverIpLocalCity) {
        this.serverIpLocalCity = serverIpLocalCity;
    }

    public Long getCalleeCityId() {
        return calleeCityId;
    }

    public void setCalleeCityId(Long calleeCityId) {
        this.calleeCityId = calleeCityId;
    }

    public Long getCalleeProvinceId() {
        return calleeProvinceId;
    }

    public void setCalleeProvinceId(Long calleeProvinceId) {
        this.calleeProvinceId = calleeProvinceId;
    }


    public Long getSubcdrId() {
        return subcdrId;
    }

    public void setSubcdrId(Long subcdrId) {
        this.subcdrId = subcdrId;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCallere164() {
        return callere164;
    }

    public void setCallere164(String callere164) {
        //截取是手机号或者固话的部分。
        this.callere164 = callere164;
    }

    public String getCallerAccess164() {
        return callerAccess164;
    }

    public void setCallerAccess164(String callerAccess164) {
        this.callerAccess164 = callerAccess164;
    }

    public String getCalleee164() {
        return calleee164;
    }

    public void setCalleee164(String calleee164) {
        this.calleee164 = calleee164;
    }

    public String getCalleeAccess164() {
        return calleeAccess164;
    }

    public void setCalleeAccess164(String calleeAccess164) {
        this.calleeAccess164 = calleeAccess164;
    }

    public Long getCallerProductDBId() {
        return callerProductDBId;
    }

    public void setCallerProductDBId(Long callerProductDBId) {
        this.callerProductDBId = callerProductDBId;
    }

    public Long getCalleeProductDBId() {
        return calleeProductDBId;
    }

    public void setCalleeProductDBId(Long calleeProductDBId) {
        this.calleeProductDBId = calleeProductDBId;
    }

    public String getCallerGateWayh323Id() {
        return callerGateWayh323Id;
    }

    public void setCallerGateWayh323Id(String callerGateWayh323Id) {
        this.callerGateWayh323Id = callerGateWayh323Id;
    }

    public String getCallerProductId() {
        return callerProductId;
    }

    public void setCallerProductId(String callerProductId) {
        this.callerProductId = callerProductId;
    }

    public String getCallerToGatewaye164() {
        return callerToGatewaye164;
    }

    public void setCallerToGatewaye164(String callerToGatewaye164) {
        this.callerToGatewaye164 = callerToGatewaye164;
    }

    public Long getCallerIp() {
        return callerIp;
    }

    public void setCallerIp(Long callerIp) {
        this.callerIp = callerIp;
    }

    public Long getCalleeIp() {
        return calleeIp;
    }

    public void setCalleeIp(Long calleeIp) {
        this.calleeIp = calleeIp;
    }

    public Long getServerIp() {
        return serverIp;
    }

    public void setServerIp(Long serverIp) {
        this.serverIp = serverIp;
    }

    public String getCalleeGatewayh323Id() {
        return calleeGatewayh323Id;
    }

    public void setCalleeGatewayh323Id(String calleeGatewayh323Id) {
        this.calleeGatewayh323Id = calleeGatewayh323Id;
    }

    public String getCalleeProductId() {
        return calleeProductId;
    }

    public void setCalleeProductId(String calleeProductId) {
        this.calleeProductId = calleeProductId;
    }

    public String getCalleeToGatewaye164() {
        return calleeToGatewaye164;
    }

    public void setCalleeToGatewaye164(String calleeToGatewaye164) {
        this.calleeToGatewaye164 = calleeToGatewaye164;
    }

    public String getBillingModel() {
        return billingModel;
    }

    public void setBillingModel(String billingModel) {
        this.billingModel = billingModel;
    }

    public Integer getCallLevel() {
        return callLevel;
    }

    public void setCallLevel(Integer callLevel) {
        this.callLevel = callLevel;
    }

    public Long getAgentFeeTime() {
        return agentFeeTime;
    }

    public void setAgentFeeTime(Long agentFeeTime) {
        this.agentFeeTime = agentFeeTime;
    }

    public Long getStartTime() {
        return startTime;
    }

    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }

    public Long getStopTime() {
        return stopTime;
    }

    public void setStopTime(Long stopTime) {
        this.stopTime = stopTime;
    }

    public Long getPdd() {
        return pdd;
    }

    public void setPdd(Long pdd) {
        this.pdd = pdd;
    }

    public Integer getHoldTime() {
        return holdTime;
    }

    public void setHoldTime(Integer holdTime) {
        this.holdTime = holdTime;
    }

    public String getFeePrefix() {
        return feePrefix;
    }

    public void setFeePrefix(String feePrefix) {
        this.feePrefix = feePrefix;
    }

    public Long getFeeTime() {
        return feeTime;
    }

    public void setFeeTime(Long feeTime) {
        this.feeTime = feeTime;
    }


    public String getSoftSwitchDn() {
        return softSwitchDn;
    }

    public void setSoftSwitchDn(String softSwitchDn) {
        this.softSwitchDn = softSwitchDn;
    }

    public Integer getEndDirection() {
        return endDirection;
    }

    public void setEndDirection(Integer endDirection) {
        this.endDirection = endDirection;
    }

    public Integer getEndReason() {
        return endReason;
    }

    public void setEndReason(Integer endReason) {
        this.endReason = endReason;
    }

    public String getCalleeBilling() {
        return calleeBilling;
    }

    public void setCalleeBilling(String calleeBilling) {
        this.calleeBilling = calleeBilling;
    }

    public Integer getCdrLevel() {
        return cdrLevel;
    }

    public void setCdrLevel(Integer cdrLevel) {
        this.cdrLevel = cdrLevel;
    }

    public Double getFee() {
        return fee;
    }

    public void setFee(Double fee) {
        this.fee = fee;
    }

    public Double getSuiteFee() {
        return suiteFee;
    }

    public void setSuiteFee(Double suiteFee) {
        this.suiteFee = suiteFee;
    }

    public Long getSuiteFeeTime() {
        return suiteFeeTime;
    }

    public void setSuiteFeeTime(Long suiteFeeTime) {
        this.suiteFeeTime = suiteFeeTime;
    }

    public Double getInComeFee() {
        return inComeFee;
    }

    public void setInComeFee(Double inComeFee) {
        this.inComeFee = inComeFee;
    }

    public String getCustomerAccount() {
        return customerAccount;
    }

    public void setCustomerAccount(String customerAccount) {
        this.customerAccount = customerAccount;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getAgentFeePrefix() {
        return agentFeePrefix;
    }

    public void setAgentFeePrefix(String agentFeePrefix) {
        this.agentFeePrefix = agentFeePrefix;
    }

    public Double getAgentFee() {
        return agentFee;
    }

    public void setAgentFee(Double agentFee) {
        this.agentFee = agentFee;
    }

    public Double getAgentSuiteFee() {
        return agentSuiteFee;
    }

    public void setAgentSuiteFee(Double agentSuiteFee) {
        this.agentSuiteFee = agentSuiteFee;
    }

    public Long getAgentSuiteFeeTime() {
        return agentSuiteFeeTime;
    }

    public void setAgentSuiteFeeTime(Long agentSuiteFeeTime) {
        this.agentSuiteFeeTime = agentSuiteFeeTime;
    }

    public String getAgentAccount() {
        return agentAccount;
    }

    public void setAgentAccount(String agentAccount) {
        this.agentAccount = agentAccount;
    }

    public String getAgentName() {
        return agentName;
    }

    public void setAgentName(String agentName) {
        this.agentName = agentName;
    }

    public Long getFlowNo() {
        return flowNo;
    }

    public void setFlowNo(Long flowNo) {
        this.flowNo = flowNo;
    }

    public Long getCallerCityId() {
        return callerCityId;
    }

    public void setCallerCityId(Long callerCityId) {
        this.callerCityId = callerCityId;
    }

    public Long getCallerProvinceId() {
        return callerProvinceId;
    }

    public void setCallerProvinceId(Long callerProvinceId) {
        this.callerProvinceId = callerProvinceId;
    }

    public String getCallerCityName() {
        return callerCityName;
    }

    public void setCallerCityName(String callerCityName) {
        this.callerCityName = callerCityName;
    }

    public String getCallerProvinceName() {
        return callerProvinceName;
    }

    public void setCallerProvinceName(String callerProvinceName) {
        this.callerProvinceName = callerProvinceName;
    }

    public String getCallerLongitude() {
        return callerLongitude;
    }

    public void setCallerLongitude(String callerLongitude) {
        this.callerLongitude = callerLongitude;
    }

    public String getCallerLatitude() {
        return callerLatitude;
    }

    public void setCallerLatitude(String callerLatitude) {
        this.callerLatitude = callerLatitude;
    }

    public String getCalleeLocaltion() {
        return calleeLocaltion;
    }

    public void setCalleeLocaltion(String calleeLocaltion) {
        this.calleeLocaltion = calleeLocaltion;
    }

    public String getCallerLocaltion() {
        return callerLocaltion;
    }

    public void setCallerLocaltion(String callerLocaltion) {
        this.callerLocaltion = callerLocaltion;
    }

    public String getCallere164Localtion() {
        return callere164Localtion;
    }

    public void setCallere164Localtion(String callere164Localtion) {
        this.callere164Localtion = callere164Localtion;
    }

    public String getFraudTypeValue() {
        return fraudTypeValue;
    }

    public void setFraudTypeValue(String fraudTypeValue) {
        this.fraudTypeValue = fraudTypeValue;
    }

    /**
     * 生成rowkey，服务器IP+表名中的日期+服务器IP
     *
     * @return
     */
    public String genRowKey(String tableDate) {
        RowKey rowKey = new RowKey(id, tableDate, serverIp);
        String key = rowKey.toString();
        setRowKey(key);
        return key;
    }


    public static class RowKey {

        /**
         * 服务器IP
         */
        private Long serverIp;
        /**
         * 表名中的日期
         */
        private String tableDate;
        /**
         * 数据库id
         */
        private Long id;

        public RowKey(Long id, String tableDate, Long serverIp) {
            this.id = id;
            this.serverIp = serverIp;
        }

        public RowKey() {

        }

        public Long getServerIp() {
            return serverIp;
        }

        public void setServerIp(Long serverIp) {
            this.serverIp = serverIp;
        }

        public String getTableDate() {
            return tableDate;
        }


        @Override
        public String toString() {
            return StringUtils.reverse(serverIp + "") + tableDate + id;
        }


        public Long getId() {
            return id;
        }

        public void setId(Long id) {
            this.id = id;
        }
    }


}
